package busenum

// @schema_go
// @schema_ts
// @cache_go
// @cache_ts
type R任务集合标旗 int

const (
	// 任务结束后，重新开始
	// 场景：每日签到
	R任务集合标旗_允许循坏   R任务集合标旗 = 1
	R任务集合标旗_禁止计数完成 R任务集合标旗 = 2
	R任务集合标旗_禁止计数失败 R任务集合标旗 = 3
	// 连续的任务只保存最后一个未完成任务的状态
	// 默认保存所有任务的数据。如果任务没有查看过期数据的需求，启用此标旗节省内存
	R任务集合标旗_连续模式只保存最后任务 R任务集合标旗 = 4
)

// @schema_go
// @schema_ts
// @cache_go
// @cache_ts
type R任务集索引模式 int

const (
	// 同时接受所有任务
	R任务集索引模式_默认 R任务集索引模式 = iota
	// 任务结束，自动接受下一个任务
	R任务集索引模式_连续
)

// @schema_go
// @schema_ts
// @cache_go
// @cache_ts
type G功能任务标旗 int

const (
	G功能任务标旗_忽略任务的发布条件 G功能任务标旗 = iota
	// 如果功能需要登记后才可进行
	// 场景：主体为角色、公会的的通常不需要登记，角色登陆有符合条件就自动参与
	// 场景：主体为游戏服、跨服等大型活动通常需要角色主动登记，减少资源浪费。功能单位为公会时，需要会长申请
	G功能任务标旗_需要登记
)

// / @schema_export --ident=schema --json
// @schema_go
// @schema_ts
type R任务标旗 int

const (
	//
	R任务标旗_作为起源任务 R任务标旗 = 1
	// 任务出现bug，或者不再需要的任务，可设置该标旗
	R任务标旗_禁止任务 R任务标旗 = 2
	// 默认自动接受。即发布任务后，根据【自动接受条件】，自动判断是否接受任务
	R任务标旗_禁止自动接受 R任务标旗 = 3
	// 任务接受之后，允许主动放弃任务
	R任务标旗_允许放弃 R任务标旗 = 4
	// 默认自动完成。即接收任务后，根据【完成条件】，自动判断是否完成任务
	// 设置后，需要主动完成。例如玩家收集完材料，在NPC处完成任务
	// 主动完成的任务，可设置【完成消耗】和【失败消耗】，用于提交任务物品
	R任务标旗_禁止自动完成 R任务标旗 = 3
	// 开启后才能强制完成
	R任务标旗_允许进行中强制完成 R任务标旗 = 5
	// 开启后才能强制完成
	R任务标旗_允许失败后强制完成 R任务标旗 = 6
	// 只保留已经完成的信息
	// todo: 需要再fix数据的时候删掉多余的数据吗
	R任务标旗_允许结束后清除数据 R任务标旗 = 9
	// 任务结束后，重新开始
	// 场景：每日签到
	R任务标旗_允许循坏 R任务标旗 = 11
	// 连续的任务只保存最后一个未完成任务的状态
	// 默认保存所有任务的数据。如果任务没有查看过期数据的需求，启用此标旗节省内存
	// todo: 是哦福可以由单独的标旗【允许结束后清除数据】代替实现
	R任务标旗_连续模式只保存最后任务 R任务标旗 = 12
)

// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
type R任务主体 int

const (
	R任务主体_自动 R任务主体 = 0
	// 作用于角色的任务
	R任务主体_角色 = 1
	// 作用于玩家的任务
	R任务主体_玩家 = 2
	// 作用于队伍的任务
	R任务主体_队伍 = 3
	// 作用于团队的任务
	R任务主体_团队 = 4
	// 作用于公会的任务
	// 场景：公会所有角色可以共同完成
	R任务主体_公会 = 5
	// 作用于单个游戏服的任务
	// 场景：游戏服所有角色可以共同完成
	R任务主体_游戏服 = 6
	// 作用于一个区域（游戏节点）多个游戏服的任务
	// 场景：一个区域（游戏节点）多个游戏服的所有角色可以共同完成
	R任务主体_跨服 = 7
	// 作用于所有区域多个游戏服的任务
	// 场景：多个游戏服的所有角色可以共同完成
	R任务主体_跨区 = 8
)

// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
type R任务状态 int

const (
	R任务状态_未发布 R任务状态 = iota
	R任务状态_已发布       //1
	R任务状态_可接受
	R任务状态_进行中 // 3
	R任务状态_已完成 //4
	R任务状态_已结束 //5
)

// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
type J角色领取状态 int

const (
	J角色领取状态_未知 J角色领取状态 = iota
	J角色领取状态_已领取
)

// 任务状态为进行中时, 如果完成/失败条件达成,也会修改任务结果
// 当任务状态为已结束时, 任务结果就固定下来了
// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
type R任务结果 int

const (
	R任务结果_未知 R任务结果 = iota
	R任务结果_失败
	R任务结果_成功
)

// @schema_go
// @schema_ts
// @cache_go
// @cache_ts
type R任务放弃选项 int

const (
	R任务放弃选项_重新接受 R任务放弃选项 = iota
	R任务放弃选项_永久
)
